﻿using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace WxLib.Business
{
    /// <summary>
    /// 企业付款到微信用户响应模型
    /// </summary>
    [XmlRoot("xml", IsNullable = false)]
    public class PayToUserResponse
    {
        /// <summary>
        /// 返回状态码
        /// </summary>
        public string return_code { get; set; } //是	SUCCESS	String(16)	SUCCESS/FAIL此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
        /// <summary>
        /// 返回信息
        /// </summary>
        public string return_msg { get; set; } //	否	签名失败	String(128)	返回信息，如非空，为错误原因 签名失败 参数格式校验错误

        ///////////////////////////以下字段在return_code为SUCCESS的时候有返回///////////////////////////////


        /// <summary>
        /// 店面appid
        /// </summary>
        public string mch_appid { get; set; } //	是	wx8888888888888888	String	微信分配的公众账号ID（企业号corpid即为此appId）
        /// <summary>
        /// 店面号
        /// </summary>
        public string mchid { get; set; } //	是	1900000109	String(32)	微信支付分配的店面号
        /// <summary>
        /// 设备号
        /// </summary>
        public string device_info { get; set; } //	否	013467007045764	String(32)	微信支付分配的终端设备号，
        /// <summary>
        /// 随机字符串
        /// </summary>
        public string nonce_str { get; set; } //	是	5K8264ILTKCH16CQ2502SI8ZNMTM67VS	String(32)	随机字符串，不长于32位
        /// <summary>
        /// 业务结果
        /// </summary>
        public string result_code { get; set; } //	是	SUCCESS	String(16)	SUCCESS/FAIL
        /// <summary>
        /// 错误代码
        /// </summary>
        public string err_code { get; set; } //	否	SYSTEMERROR	String(32)	错误码信息
        /// <summary>
        /// 错误代码描述
        /// </summary>
        public string err_code_des { get; set; } //	否	系统错误	String(128)	结果信息描述

        ///////////////////以下字段在return_code 和result_code都为SUCCESS的时候有返回///////////////////////


        /// <summary>
        /// 店面订单号
        /// </summary>
        public string partner_trade_no { get; set; } //	是	1217752501201407033233368018	String(32)	店面订单号，需保持唯一性(只能是字母或者数字，不能包含有符号)
        /// <summary>
        /// 微信订单号
        /// </summary>
        public string payment_no { get; set; } //是	1007752501201407033233368018	String	企业付款成功，返回的微信订单号
        /// <summary>
        /// 微信支付成功时间
        /// </summary>
        public string payment_time { get; set; } //是	2015-05-19 15：26：59	String	企业付款成功时间

        /// <summary>
        /// 是否成功
        /// </summary>
        /// <returns></returns>
        public bool IsSuccess()
        {
            return return_code.Equals("SUCCESS", StringComparison.OrdinalIgnoreCase) && result_code.Equals("SUCCESS", StringComparison.OrdinalIgnoreCase);
        }
    }
}
